package com.example.design.utils;

import com.jcraft.jsch.*;
import lombok.extern.slf4j.Slf4j;

/**
 * @Description:
 * @Author Hong Qiang
 * @Date 2023/4/10 16:16
 * @Version 1.0
 */
@Slf4j
public class SFTPUtil {

    private static Session session = null;
    private static Channel channel = null;
    private static ChannelSftp chSftp = null;

    public static void main(String[] args) throws JSchException {
        chSftp = getChannel("112.126.81.206",22,"root",6000);
    }

    public static ChannelSftp getChannel(String host,Integer port,String userName, int timeout) throws JSchException {
        JSch jsch = new JSch(); // 创建JSch对象
        jsch.addIdentity("");//文件地址
        session = jsch.getSession(userName, host); // 根据用户名，主机ip，端口获取一个Session对象
        log.debug("SFTPUtils会话获取成功！\n");
//        session.setPassword("318622hQ@");
        session.setConfig("userauth.gssapi-with-mic", "no");
        session.setConfig("StrictHostKeyChecking", "no");
        session.setTimeout(timeout); // 设置timeout时间
        session.connect(); // 通过Session建立链接
        log.debug("SFTPUtils服务器连接成功！\n SFTPUtils开始打开SFTP通道...！\n");
        channel = session.openChannel("sftp"); // 打开SFTP通道
        channel.connect(); // 建立SFTP通道的连接
        log.debug("SFTPUtils打开SFTP通道成功！\n");
        return (ChannelSftp) channel;
    }
}
